@keyframes shake { /* 水平抖动，核心代码 */
  10%, 90% { transform: translate3d(-1px, 0, 0); }
  20%, 80% { transform: translate3d(+2px, 0, 0); }
  30%, 70% { transform: translate3d(-4px, 0, 0); }
  40%, 60% { transform: translate3d(+4px, 0, 0); }
  50% { transform: translate3d(-4px, 0, 0); }
}

.page-login {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 36rpx 90rpx 0;

  .login-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 78rpx;

    .login-logo {
      width: 190.82rpx;
      height: 185.46rpx;
      margin: 20rpx;
    }

    .login-title {
      margin-bottom: 8rpx;
    }
  }

  .login-content {
    flex: 1;
    .login-captcha {
      width: 150rpx;
      height: 50rpx;
    }

    .login-link {
      display: flex;
      justify-content: center;
      margin-top: 46rpx;
      ::v-deep .fui-link__text {
        > span {
          display: flex;
          align-items: center;
          .fui-icon {
            width: 24rpx;
            height: 24rpx;
            line-height: 24rpx;
          }
        }
      }
    }
  }

  .login-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 36rpx;
    .login-method {
      margin-bottom: 40rpx;
      .login-method-image {
        display: block;
        width: 68rpx;
        height: 68rpx;
        margin: 0 auto 10rpx;
      }
    }
    .login-agreement {
      display: flex;
      align-items: center;
      margin-bottom: 12rpx;
      &.is-shake {
        animation: shake 800ms ease-in-out;
      }
      .fui-label__box {
        display: flex;
        align-items: center;
        .fui-checkbox__input {
          margin-right: 12rpx;
        }
      }
    }
  }
}